decorator pattern c